package moxl.xpath.parser.states.step;

import moxl.tokenizer.Token;
import moxl.tokenizer.TokenStream;
import moxl.xpath.parser.XPathParser;
import moxl.xpath.parser.XPathParserException;
import moxl.xpath.parser.types.NonTerminal;


public class XPathStepStartWithImpliedAxisState extends XPathStepStartState
{
	private static final XPathStepStartWithImpliedAxisState instance = new XPathStepStartWithImpliedAxisState();
	
	public static XPathStepStartWithImpliedAxisState getInstance()
    {
	    return instance;
    }
	
	private XPathStepStartWithImpliedAxisState() {
	}

	@Override
    public void acceptAtSymbol(XPathParser parser, TokenStream tstream, Token token, NonTerminal nonTerminal) throws XPathParserException
    {
	    throw new XPathParserException("Illegal attribute specifier after implied axis");
    }

	@Override
    public void acceptAxisName(XPathParser parser, TokenStream tstream, Token token, NonTerminal nonTerminal) throws XPathParserException
    {
	    throw new UnsupportedOperationException("Axis already implied, cannot be changed");
    }
	
}
